package vetxsoft.system;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Singleton;
import vetxsoft.dao.CiudadFacade;
import vetxsoft.dao.ClienteFacade;
import vetxsoft.dao.ConsultaFacade;
import vetxsoft.dao.ControlFacade;
import vetxsoft.dao.DesparacitacionFacade;
import vetxsoft.dao.DetalleDesparasitacionFacade;
import vetxsoft.dao.DetalleProcedimientoFacade;
import vetxsoft.dao.DetalleVacunacionFacade;
import vetxsoft.dao.DetalleVentaFacade;
import vetxsoft.dao.EspecieFacade;
import vetxsoft.dao.FacturaFacade;
import vetxsoft.dao.HistoriaClinicaFacade;
import vetxsoft.dao.ProductoFacade;
import vetxsoft.dao.MascotaFacade;
import vetxsoft.dao.ProcedimientoFacade;
import vetxsoft.dao.RazaFacade;
import vetxsoft.dao.TipoProductoFacade;
import vetxsoft.dao.VacunacionFacade;
import vetxsoft.entity.Ciudad;
import vetxsoft.entity.Cliente;
import vetxsoft.entity.Consulta;
import vetxsoft.entity.Control;
import vetxsoft.entity.Desparacitacion;
import vetxsoft.entity.DetalleDesparasitacion;
import vetxsoft.entity.DetalleProcedimiento;
import vetxsoft.entity.DetalleVacunacion;
import vetxsoft.entity.DetalleVenta;
import vetxsoft.entity.Especie;
import vetxsoft.entity.Factura;
import vetxsoft.entity.HistoriaClinica;
import vetxsoft.entity.Mascota;
import vetxsoft.entity.Procedimiento;
import vetxsoft.entity.Producto;
import vetxsoft.entity.Raza;
import vetxsoft.entity.TipoProducto;
import vetxsoft.entity.Vacunacion;

/**
 *
 * @author cuero
 */
@Singleton
public class VetexsoftSystem implements IVetexsoftSystem {

    @EJB
    private ClienteFacade clienteFacade;
    @EJB
    private MascotaFacade mascotaFacade;
    @EJB
    private CiudadFacade ciudadFacade;
    @EJB
    private ProductoFacade productoFacade;
    @EJB
    private TipoProductoFacade tipoProductoFacade;
    @EJB
    private EspecieFacade especieFacade;
    @EJB
    private RazaFacade razaFacade;
    @EJB
    private HistoriaClinicaFacade historiaclinicaFacade;
    @EJB
    private ConsultaFacade consultaFacade;
    @EJB
    private VacunacionFacade vacunacionFacade;
    @EJB
    private DetalleVacunacionFacade detalleVacunacionFacade;
    @EJB
    private DesparacitacionFacade desparacitacionFacade;
    @EJB
    private DetalleDesparasitacionFacade detalleDesparasitacionFacade;
    @EJB
    private ControlFacade controlFacade;
    @EJB
    private FacturaFacade facturaFacade;
    @EJB
    private DetalleVentaFacade detalleVentaFacade;
    @EJB
    private ProcedimientoFacade procedimientoFacade;
    @EJB
    private DetalleProcedimientoFacade detalleProcedimientoFacade;

    // Ciudad
    @Override
    public void saveCiudad(Ciudad ciudad) throws Exception {

        this.ciudadFacade.save(ciudad);
    }

    @Override
    public void removeCiudad(Ciudad ciudad) throws Exception {

        this.ciudadFacade.remove(ciudad);
    }

    @Override
    public Ciudad buscarCiudad(String value) throws Exception {

        return this.ciudadFacade.find(new Integer(value));
    }

    @Override
    public List<Ciudad> obtenerCiudades() throws Exception {

        return this.ciudadFacade.findAll();
    }

    // TipoProducto
    @Override
    public void saveTipoProducto(TipoProducto tipoProducto) throws Exception {

        this.tipoProductoFacade.save(tipoProducto);
    }

    @Override
    public void removeTipoProducto(TipoProducto tipoProducto) throws Exception {

        this.tipoProductoFacade.remove(tipoProducto);
    }

    @Override
    public TipoProducto buscarTipoProducto(String value) throws Exception {

        return this.tipoProductoFacade.find(new Integer(value));
    }

    @Override
    public List<TipoProducto> obtenerTipoProductos() throws Exception {

        return this.tipoProductoFacade.findAll();
    }

    @Override
    public List<TipoProducto> obtenerTipoProductosActivos() throws Exception {

        return this.tipoProductoFacade.tipoProductosActivos();
    }

    // Cliente
    @Override
    public void saveCliente(Cliente cliente) throws Exception {

        this.clienteFacade.save(cliente);
    }

    @Override
    public void removeCliente(Cliente cliente) throws Exception {

        this.clienteFacade.remove(cliente);
    }

    @Override
    public Cliente buscarCliente(String value) throws Exception {

        return this.clienteFacade.find(new Integer(value));
    }

    @Override
    public List<Cliente> obtenerClientes() throws Exception {

        return this.clienteFacade.findAll();
    }

    // Mascota
    @Override
    public void saveMascota(Mascota mascota) throws Exception {

        this.mascotaFacade.save(mascota);
    }

    @Override
    public void removeMascota(Mascota mascota) throws Exception {

        this.mascotaFacade.remove(mascota);
    }

    @Override
    public Mascota buscarMascota(String value) throws Exception {

        return this.mascotaFacade.find(new Integer(value));
    }

    @Override
    public List<Mascota> obtenerMascotas() throws Exception {

        return this.mascotaFacade.findAll();
    }

    // Producto
    @Override
    public void saveProducto(Producto producto) throws Exception {

        this.productoFacade.save(producto);
    }

    @Override
    public void removeProducto(Producto producto) throws Exception {

        this.productoFacade.remove(producto);
    }

    @Override
    public Producto buscarProducto(String value) throws Exception {

        return this.productoFacade.find(new Integer(value));
    }

    @Override
    public List<Producto> obtenerProductosActivos() throws Exception {

        return this.productoFacade.productosActivos();
    }

    @Override
    public List<Producto> obtenerProductos() throws Exception {

        return this.productoFacade.findAll();
    }

    // Especie
    @Override
    public void saveEspecie(Especie especie) throws Exception {

        this.especieFacade.save(especie);
    }

    @Override
    public void removeEspecie(Especie especie) throws Exception {

        this.especieFacade.remove(especie);
    }

    @Override
    public Especie buscarEspecie(String value) throws Exception {

        return this.especieFacade.find(new Integer(value));
    }

    @Override
    public List<Especie> obtenerEspecies() throws Exception {

        return this.especieFacade.findAll();
    }

    // Raza
    @Override
    public void saveRaza(Raza raza) throws Exception {

        this.razaFacade.save(raza);
    }

    @Override
    public void removeRaza(Raza raza) throws Exception {

        this.razaFacade.remove(raza);
    }

    @Override
    public Raza buscarRaza(String value) throws Exception {

        return this.razaFacade.find(new Integer(value));
    }

    @Override
    public List<Raza> obtenerRazas() throws Exception {

        return this.razaFacade.findAll();
    }

    // Factura
    @Override
    public void saveFactura(Factura factura) throws Exception {

        this.facturaFacade.save(factura);
    }

    @Override
    public void removeFactura(Factura factura) throws Exception {

        this.facturaFacade.remove(factura);
    }

    @Override
    public Factura buscarFactura(String value) throws Exception {

        return this.facturaFacade.find(new Integer(value));
    }

    @Override
    public List<Factura> obtenerFacturas() throws Exception {

        return this.facturaFacade.findAll();
    }

    // DetalleVenta
    @Override
    public void saveDetalleVenta(DetalleVenta detalleVenta) throws Exception {

        this.detalleVentaFacade.save(detalleVenta);
    }

    @Override
    public void removeDetalleVenta(DetalleVenta detalleVenta) throws Exception {

        this.detalleVentaFacade.remove(detalleVenta);
    }

    @Override
    public DetalleVenta buscarDetalleVenta(String value) throws Exception {

        return this.detalleVentaFacade.find(new Integer(value));
    }

    @Override
    public List<DetalleVenta> obtenerDetalleVenta() throws Exception {

        return this.detalleVentaFacade.findAll();
    }

    @Override
    public void saveHistoriaClinica(HistoriaClinica historiaClinica) throws Exception {
        this.historiaclinicaFacade.save(historiaClinica);
    }

    @Override
    public void removeHistoriaClinica(HistoriaClinica historiaClinica) throws Exception {
        this.historiaclinicaFacade.remove(historiaClinica);
    }

    @Override
    public HistoriaClinica buscarHistoriaClinica(String value) throws Exception {
        return this.historiaclinicaFacade.find(new Integer(value));
    }

    @Override
    public List<HistoriaClinica> obtenerHistoriaClinica() throws Exception {
        return this.historiaclinicaFacade.findAll();
    }

    @Override
    public void saveConsulta(Consulta consulta) throws Exception {
        this.consultaFacade.save(consulta);
    }

    @Override
    public void removeConsulta(Consulta consulta) throws Exception {
        this.consultaFacade.remove(consulta);
    }

    @Override
    public Consulta buscarConsulta(String value) throws Exception {
        return this.consultaFacade.find(new Integer(value));
    }

    @Override
    public List<Consulta> obtenerConsulta() throws Exception {
        return this.consultaFacade.findAll();
    }

    @Override
    public void saveVacunacion(Vacunacion vacunacion) throws Exception {
        this.vacunacionFacade.save(vacunacion);
    }

    @Override
    public void removeVacunacion(Vacunacion vacunacion) throws Exception {
        this.vacunacionFacade.remove(vacunacion);
    }

    @Override
    public Vacunacion buscarVacunacion(String value) throws Exception {
        return this.vacunacionFacade.find(new Integer(value));
    }

    @Override
    public List<Vacunacion> obtenerVacunacion() throws Exception {
        return this.vacunacionFacade.findAll();
    }

    // DetalleVacunación
    @Override
    public void saveDetalleVacunacion(DetalleVacunacion detalleVacunacion) throws Exception {

        this.detalleVacunacionFacade.save(detalleVacunacion);
    }

    @Override
    public void removeDetalleVacunacion(DetalleVacunacion detalleVacunacion) throws Exception {

        this.detalleVacunacionFacade.remove(detalleVacunacion);
    }

    @Override
    public DetalleVacunacion buscarDetalleVacunacion(String value) throws Exception {

        return this.detalleVacunacionFacade.find(new Integer(value));
    }

    @Override
    public List<DetalleVacunacion> obtenerDetalleVacunacion() throws Exception {

        return this.detalleVacunacionFacade.findAll();
    }

    // Desparasitacion
    @Override
    public void saveDesparasitacion(Desparacitacion desparacitacion) throws Exception {
        this.desparacitacionFacade.save(desparacitacion);
    }

    @Override
    public void removeDesparasitacion(Desparacitacion desparasitacion) throws Exception {
        this.desparacitacionFacade.remove(desparasitacion);
    }

    @Override
    public Desparacitacion buscarDesparasitacion(String value) throws Exception {
        return this.desparacitacionFacade.find(new Integer(value));
    }

    @Override
    public List<Desparacitacion> obtenerDesparacitacion() throws Exception {
        return this.desparacitacionFacade.findAll();
    }

    // DetalleDesparasitacion
    @Override
    public void saveDetalleDesparasitacion(DetalleDesparasitacion detalleDesparasitacion) throws Exception {
        this.detalleDesparasitacionFacade.save(detalleDesparasitacion);
    }

    @Override
    public void removeDetalleDesparasitacion(DetalleDesparasitacion detalleDesparasitacion) throws Exception {
        this.detalleDesparasitacionFacade.remove(detalleDesparasitacion);
    }

    @Override
    public DetalleDesparasitacion buscarDetalleDesparasitacion(String value) throws Exception {
        return this.detalleDesparasitacionFacade.find(new Integer(value));
    }

    @Override
    public List<DetalleDesparasitacion> obtenerDetalleDesparasitacion() throws Exception {
        return this.detalleDesparasitacionFacade.findAll();
    }

    @Override
    public void saveControl(Control control) throws Exception {
        this.controlFacade.save(control);
    }

    @Override
    public void removeControl(Control control) throws Exception {
        this.controlFacade.remove(control);
    }

    @Override
    public Control buscarControl(String value) throws Exception {
        return this.controlFacade.find(new Integer(value));
    }

    @Override
    public List<Control> obtenerControl() throws Exception {
        return this.controlFacade.findAll();
    }

    @Override
    public void saveProcedimiento(Procedimiento procedimiento) throws Exception {
        this.procedimientoFacade.save(procedimiento);
    }

    @Override
    public void removeProcedimiento(Procedimiento procedimiento) throws Exception {
        this.procedimientoFacade.remove(procedimiento);
    }

    @Override
    public Procedimiento buscarProcedimiento(String value) throws Exception {
        return this.procedimientoFacade.find(new Integer(value));
    }

    @Override
    public List<Procedimiento> obtenerProcedimiento() throws Exception {
        return this.procedimientoFacade.findAll();
    }

    @Override
    public void saveDetalleProcedimiento(DetalleProcedimiento detalleProcedimiento) throws Exception {
        this.detalleProcedimientoFacade.save(detalleProcedimiento);
    }

    @Override
    public void removeDetalleProcedimiento(DetalleProcedimiento detalleProcedimiento) throws Exception {
        this.detalleProcedimientoFacade.remove(detalleProcedimiento);
    }

    @Override
    public DetalleProcedimiento buscarDetalleProcedimiento(String value) throws Exception {
        return this.detalleProcedimientoFacade.find(new Integer(value));
    }

    @Override
    public List<DetalleProcedimiento> obtenerDetalleProcedimiento() throws Exception {
        return this.detalleProcedimientoFacade.findAll();
    }
}
